package com.example.youjingjing.electronicbalance.presenter;

import android.content.Context;
import android.os.Bundle;

import com.example.youjingjing.electronicbalance.model.LoginModel;
import com.example.youjingjing.electronicbalance.model.LoginModelIml;
import com.example.youjingjing.electronicbalance.util.ToolUtils;
import com.example.youjingjing.electronicbalance.view.LoginView;
import com.example.youjingjing.electronicbalance.widge.MainActivity;

/**
 * Created by youjingjing on 2017/7/19.
 */

public class LoginPresenter extends BasePresenterIml<LoginView>{

    /**
     * 登录业务实现者，数据处理的操作者
     */
    private LoginModelIml loginModelIml;

    /**
     * 在构造方法中实例化model对象
     */
    public LoginPresenter () {
        loginModelIml = new LoginModelIml();
    }

    /**
     * 登录业务
     */
    public void login(Context context, final String username, final String password) {
        if (isViewAttached()) {//判断界面是否还在（用户没有点返回键）
            if (!ToolUtils.isNetWorkAvailable(context)) { //无网络，显示网络无连接
                getView().showNetWorkError();
                return;
            }
            getView().showLogging(); //显示正在登录中

            doSomePrepare();
            //登录 ，需要处理数据，所有要在model中执行
            loginModelIml.login(context, username, password, new LoginModel.OnLoginResultListener() {//访问Model
                @Override
                public void onSuccess(String msg) {
                    if (isViewAttached()) {
                        getView().showLoginSuccess(); //显示登录成功
                        Bundle bundle = new Bundle();
                        bundle.putString("name",username);
                        bundle.putString("psw",password);
                        getView().jumpActivity(MainActivity.class, bundle);

                    }
                }

                @Override
                public void onFailure(String msg) {
                    if (isViewAttached()) {
                        getView().showLoginFailure(msg);//显示登录失败
//                            getView().jumpActivity();
                    }
                }

            });
        }

    }
    /**
     * 做一些准备
     */
    private void doSomePrepare() {
        //这里可以设置按钮不可点击！否则一直点击登录也是不好
    }


}

